# 图片验证码
from django.shortcuts import render
from libs.captcha.captcha import captcha
from django_redis import get_redis_connection
from django.http import HttpResponse
from rest_framework.views import APIView
# Create your views here.
"""
前段传递一个　ｕｕｉｄ过来　后端生成一个图片

１．接收　ｉｍａｇｅ_ｃｏｄｅ_ｉｄ
２．生成图片和验证码
３．把验证码保存到ｒｅｄｉｓ中
４．返回图片响应




解决问题思路

1.分析需求 (到底要干什么)
2.把需要做的事情写下来(把思路梳理清楚)
3.路由和请求方式
4.确定视图
5.按照步骤实现功能
"""

# １．接收　ｉｍａｇｅ_ｃｏｄｅ_ｉｄ
# ２．生成图片和验证码
# ３．把验证码保存到ｒｅｄｉｓ中
# ４．返回图片响应

# GET   /verifications/images/iage_code_id/
#    /verifications/imagecodes/(?P<image_code_id>.+)/


class RegisterImageAPIView(APIView):

    def get(self,request,image_code_id):
     # １．接收　ｉｍａｇｅ_ｃｏｄｅ_ｉｄ
    # ２．生成图片和验证码
        text,image = captcha.generate_captcha()
    # ３．把验证码保存到ｒｅｄｉｓ中
    # 3.1链接ｒｅｄｉｓ
    #     通过这个库的名字（ｃｏｄｅ）　去ｓｅｔｔｉｎｇｓ中　找到对应的库
        redis_conn = get_redis_connection("code")
    # 3.2设置图片
        redis_conn.setex('img_'+image_code_id,60,text)
    # ４．返回图片响应
        return HttpResponse(image, content_type='image/jpeg')




